/**
 * This class will implement the parking location inside the network
 * 
 * @author Gil Levinson
 * @author Boris Fradlis
 * @author Yogev Levi
 * @author Hila Porat
 *  
 */
package vcpClasses;

import java.io.Serializable;

//Start of ParkingLocation ********************************************************

public class ParkingLocation implements Serializable {
	
	// Class variables ******************************************************************
	
	private int parkingLotNumber;
	private int parkingFloorNumber;
	private int parkingRowNumber;
	private int parkingSpaceNumber;
	private String parkingSpaceStatus;
	
	
	/**
	 * Empty constructor to initialize new parking space instance with all fields unknown 
	 */
	
	public ParkingLocation()
	{}
	
	/**
	 * constructor to initialize a parking location not given all needed info
	 * @param parkingLotNumber - the number of parking lot
	 * @param parkingFloorNumber - the number of floor in the lot
	 * @param parkingRowNumber - the number of row in the lot
	 * @param parkingSpaceNumber - the number of parking space in the row
	 * @param parkingSpaceStatus - the status of the parking space
	 */
	public ParkingLocation(int parkingLotNumber, int parkingFloorNumber, int parkingRowNumber, int parkingSpaceNumber, String parkingSpaceStatus) 
	{
		this.parkingLotNumber = parkingLotNumber;
		this.parkingFloorNumber = parkingFloorNumber;
		this.parkingRowNumber = parkingRowNumber;
		this.parkingSpaceNumber = parkingSpaceNumber;
		this.parkingSpaceStatus = parkingSpaceStatus;
	}

	/**
	 * constructor to initialize a parking location not given all needed info.
	 * @param parkingLotNumber - the number of parking lot
	 * @param parkingFloorNumber - the number of floor in the lot
	 * @param parkingRowNumber - the number of row in the lot
	 * @param parkingSpaceNumber - the number of parking space in the row
	 */
	public ParkingLocation(int parkingLotNumber, int parkingFloorNumber, int parkingRowNumber, int parkingSpaceNumber) 
	{
		this.parkingLotNumber = parkingLotNumber;
		this.parkingFloorNumber = parkingFloorNumber;
		this.parkingRowNumber = parkingRowNumber;
		this.parkingSpaceNumber = parkingSpaceNumber;
	}
	
	/**
	 * constructor to make a parking lot from an systemtypes object
	 * @param obj - the sysType object
	 */

	public ParkingLocation(Serializable obj) {
		this.parkingLotNumber = ((ParkingLocation)obj).getParkingLotNumber();
		this.parkingFloorNumber = ((ParkingLocation)obj).getParkingFloorNumber();
		this.parkingRowNumber = ((ParkingLocation)obj).getParkingRowNumber();
		this.parkingSpaceNumber = ((ParkingLocation)obj).getParkingSpaceNumber();
	}

	// Getters and Setters ******************************************************************************
	
	/**
	 * @return the parkingLotNumber
	 */
	public int getParkingLotNumber() {
		return parkingLotNumber;
	}

	/**
	 * @param parkingLotNumber the parkingLotNumber to set
	 */
	public void setParkingLotNumber(int parkingLotNumber) {
		this.parkingLotNumber = parkingLotNumber;
	}

	/**
	 * @return the parkingFloorNumber
	 */
	public int getParkingFloorNumber() {
		return parkingFloorNumber;
	}

	/**
	 * @param parkingFloorNumber the parkingFloorNumber to set
	 */
	public void setParkingFloorNumber(int parkingFloorNumber) {
		this.parkingFloorNumber = parkingFloorNumber;
	}

	/**
	 * @return the parkingRowNumber
	 */
	public int getParkingRowNumber() {
		return parkingRowNumber;
	}

	/**
	 * @param parkingRowNumber the parkingRowNumber to set
	 */
	public void setParkingRowNumber(int parkingRowNumber) {
		this.parkingRowNumber = parkingRowNumber;
	}

	/**
	 * @return the parkingSpaceNumber
	 */
	public int getParkingSpaceNumber() {
		return parkingSpaceNumber;
	}

	/**
	 * @param parkingSpaceNumber the parkingSpaceNumber to set
	 */
	public void setParkingSpaceNumber(int parkingSpaceNumber) {
		this.parkingSpaceNumber = parkingSpaceNumber;
	}

	/**
	 * @return the parkingSpaceStatus
	 */
	public String getParkingSpaceStatus() {
		return parkingSpaceStatus;
	}

	/**
	 * @param parkingSpaceStatus the parkingSpaceStatus to set
	 */
	public void setParkingSpaceStatus(String parkingSpaceStatus) {
		this.parkingSpaceStatus = parkingSpaceStatus;
	}
	
	

}
